package com.cmwa.scbp.sys.permission.operRole.service;

import java.util.List;

import com.cmwa.scbp.base.mvc.entity.Page;
import com.cmwa.scbp.base.mvc.entity.SearchParam;
import com.cmwa.scbp.base.exception.RepositoryException;
import com.cmwa.scbp.sys.permission.dataAuthority.entity.RoleVo;
import com.cmwa.scbp.sys.permission.operRole.entity.OperRoleVo;

public interface OperRoleService {

	/**
	 * 角色列表
	 * @param sp
	 * @return
	 */
	Page<OperRoleVo> roleListPage(SearchParam sp);

	/**
	 * 保存
	 * @param roleVo
	 */
	void saveRole(OperRoleVo roleVo) throws RepositoryException;

	/**
	 * 检测角色名称是否重复
	 * @param roleName
	 * @param roleId 
	 * @return
	 */
	boolean checkRepeatRole(String roleName, String roleId);

	/**
	 * 根据角色ID获取角色详情
	 * @param roleId
	 * @return
	 */
	OperRoleVo queryRoleById(String roleId);

	/**
	 * 软删除角色
	 * @param roleId
	 */
	int deleteRoleWithStatus(String roleId);

	/**
	 * 更新
	 * @param roleVo
	 */
	void updateRole(OperRoleVo roleVo);

	/**
	 * 获取所有角色
	 */
	List<OperRoleVo> queryAllRole(String roleName);

	/**
	 * 根据操作角色ID获取数据角色
	 * @param roleId
	 * @return
	 */
	List<RoleVo> getDataRole(String roleId);

	/**
	 * 操作角色详情页面的数据列表
	 * @param roleId
	 * @return
	 */
	Page<RoleVo> roleDetailListPage(SearchParam param);


	

	
}
